package com.campus.app.service;

import com.campus.commons.entity.OnDuty;
import com.baomidou.mybatisplus.extension.service.IService;
import com.campus.commons.utils.Result;

import javax.validation.constraints.Min;
import javax.validation.constraints.NotNull;
import java.util.Date;
import java.util.List;

/**
 * <p>
 * 晚自习值班表 服务类
 * </p>
 *
 * @author Rin
 * @since 2020-12-24
 */
public interface OnDutysService extends IService<OnDuty> {
    /**
     * 返回当天值班的人员
     * @return
     */
    Result<List<OnDuty>> getNowDuty();

    /**
     * 返回所有的值班人员记录（分页）
     * @param current
     * @param size
     * @return
     */
    Result<List<OnDuty>> getAllDuty(@Min(1) int current,int size);

    /**
     *  查询值班人 通过开始时间和结束时间过滤
     * @param current 当前页
     * @param size  每页大小
     * @param start 开始时间
     * @param end  结束时间
     * @return
     */
    Result<List<OnDuty>> getDutys(@Min(1) int current, int size, Date start, Date end);

    /**
     * 添加值班信息
     * @param onDuty
     * @return
     */
    Result addDuty(@NotNull OnDuty onDuty);

    /**
     * 通过Id 删除值班信息
     * @param dutyId
     * @return
     */
    Result delDuty(@NotNull @Min(1) Integer dutyId);

    /**
     * 更新值班信息
     * @param duty
     * @return
     */
    Result upDuty(@NotNull OnDuty duty);

    /**
     * 更新值班信息
     * @param duty
     * @return
     */
    Result upDutyVerify(@NotNull OnDuty duty);
}
